import Vue from "vue";
import Vuex from "vuex";
import getters from "./getters";
// import * as getters from './getters.js'
Vue.use(Vuex);

// 导入module下的所有以.js结尾的文件
// require.context(path,true,reg)   path-遍历路径,true-是否遍历子目录,reg-筛选的文件格式    返回一个对象，包含keys(),resolve(),id属性
const modulesFiles = import.meta.globEager("./modules/*.js");
const modules = {};
for (const key in modulesFiles) {
  modules[key.replace(/^\.\/modules\/(.*)\.\w+$/, "$1")] =
    modulesFiles[key].default;
}
// Object.keys(modules).forEach(item => {
//     // 为每个模块添加一个前缀名，保证模块命明不冲突
//       modules[item]['namespaced'] = true
//   })
// const modules = modulesFiles.keys().reduce((modules, modulePath) => {
//     // set './app.js' => 'app'
//     const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
//     const value = modulesFiles(modulePath);
//     modules[moduleName] = value.default;
//     return modules;
// }, {});

const store = new Vuex.Store({
  modules,
  getters,
});

export default store;
